/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package compilador.analisadorSintatico;

import compilador.analisadorLexico.Token;
import compilador.analisadorLexico.TokenClass;
import compilador.analisadorSintatico.cfg.AnalisadorSintaticoProperties;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Thiago
 */
public class TabelaSeguintes {

    public static List<Token> getSeguintes(String naoTerminal){
        List<Token> tokensSeguintes = new ArrayList<Token>();

        String[][] seguintes = AnalisadorSintaticoProperties.getPropertiesMatriz(naoTerminal + ".SEG");
        for(String[] seg: seguintes){
            String tokenCl = seg[0].toUpperCase();
            String atributo = seg[1];
            Token token = new Token(TokenClass.valueOf(tokenCl));
            if (atributo != null && !atributo.isEmpty()) {
                token.setAtributo(atributo);
            }

            tokensSeguintes.add(token);
        }
        
        return tokensSeguintes;
    }

    public static void main(String[] arg){
        System.out.println("OP_OR");
        List<Token> seguintes = getSeguintes("OP_OR");
        for(Token t : seguintes){
            System.out.println("TokenClass " + t.getTokenClass() + " atributo " + t.getAtributo());
        }
        
        System.out.println("VALOR_NUM");
        seguintes = getSeguintes("VALOR_NUM");
        for(Token t : seguintes){
            System.out.println("TokenClass " + t.getTokenClass() + " atributo " + t.getAtributo());
        }
    }
}
